prompt 住院国家医保接口日志:【1101】人员基本信息获取_日志生成
create or replace procedure SP_ZY_GJYBRZ_ZYXXHQ(
PYBJKID in varchar2 ,--[1]输入:医保接口ID
PJKCJBM in varchar2 ,--[2]输入:接口场景编码
PBRID00 in number ,--[3]输入:BRID00
PZYID00 in number ,--[4]输入:ZYID000
PZYH000 in varchar2 ,--[5]输入:ZYH000
PCZY000 in number ,--[6]输入:操作员编码
PCZYXM0 in varchar2 ,--[7]输入:操作员姓名
PCZYKS0 in number ,--[8]输入:操作员科室
PQQCSID in varchar2 default '' ,--[9]输入:参数中间ID
PINXML0 in varchar2 default '' ,--[10]输入:请求参数(XML)
POTHER0 in varchar2 default '' ,--[11]输入:备用参数
PCOMMIT in varchar2 default 'N' ,--[12]输入:是否提交事务 Y:提交 N:不提交
PZXZT00 out number ,--[13]输出:执行状态 0:失败 1:成功
POUTXML out varchar2 ,--[14]输出:出参(XML)
PERRMSG out varchar2 --[15]输出:错误信息
)
as
-- MODIFICATION HISTORY
-- Person Date Comments
--zhangyc 2022.01.24 created by 【1101】人员基本信息获取_日志生成 ZYSF-20220124-001
--zhangyc 2022.02.19 医保接口脚本优化,INFNLX=3:调用服务接口报文'arg0'否则不加 by ZYSF-20220221-001
--zhangyc 2022.03.07 接口挂号优化 by ZYSF-20220307-003
--zhangyc 2022.04.11 接口优化 by ZYSF-20220411-002
--zhangyc 2022.09.21 优化凭证读卡 by ZYSF-20220920-002
--zhangyc 2022.09.28 如果请求报文中certno、psn_name同基本信息不一致,按院内发送 by ZYSF-20220928-001
--zhangyc 2023.04.20 医保凭证就诊解析请求参数2中的psn_cert_type
-- --------- ---------- -------
LS_COUNT0 number(12,2);
LS_CZRQ00 char(8);
LS_CZSJ00 char(8);
LS_INFNLX BM_TYCJBM.INFNLX%type;--:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口
LS_QQJDBS BM_TYCJBM.QQJDBS%type;--:请求节点标识
LS_FHJDBS BM_TYCJBM.FHJDBS%type;--:返回节点标识
LS_DateTimeStr varchar2(20); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss
LS_DateStr varchar2(10); --日期型:格式为:yyyy-MM-dd
LS_TimeStr varchar2(10); --时间型:格式为:HH:mm:ss
LS_JKFSZ0 ZY_YBJKMX.JKFSZ0%type;--接口发送值
LS_JKFHZ0 ZY_YBJKMX.JKFHZ0%type;--接口返回值
LS_VALUE0 ZY_YBJKMX.VALUE0%type;--请求报文字符串
LS_QQDATA ZY_YBJKRZ.QQDATA%type;--请求报文
LS_MainJson ZY_YBJKRZ.QQDATA%type;--主项Json
LS_detailJson ZY_YBJKRZ.QQDATA%type;--明细Json
LS_inputJson ZY_YBJKRZ.QQDATA%type;--input输入
LS_YBKH00 BM_BRXXB0.YBKH00%type; --医保卡号
LS_YBID00 BM_BRXXB0.YBID00%type; --医保ID
LS_BRZJLX BM_BRXXB0.BRZJLX%type; --病人证件类型
LS_BRZJBH BM_BRXXB0.BRZJBH%type; --病人证件编号
LS_BRXM00 BM_BRXXB0.BRXM00%type; --病人姓名
LS_XZQH00 BM_BRXXB0.XZQH00%type; --行政区号
LS_YBKSBM BM_BRXXB0.YBKSBM%type; --医保卡识别码
LS_AAC999 BM_BRXXB0.AAC999%type; --个人管理码
LS_aaz500 ZY_YBJKRZ.aaz500%type; --社会保障卡号
LS_aac003 ZY_YBJKRZ.AAC003%type; --姓名
LS_aac002 ZY_YBJKRZ.AAC002%type; --证件号码
LS_aaz501 ZY_YBJKRZ.aaz501%type; --aaz501:卡识别码
LS_bke284 ZY_YBJKRZ.bke284%type; --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证)
LS_card_sn ZY_YBJKRZ.card_sn%type; --卡识别码, 就诊凭证类型为“03”时必填 卡识别码, 就诊凭证类型为“03”时必填
LS_mdtrt_cert_type ZY_YBJKRZ.mdtrt_cert_type%type; --就诊凭证类型
LS_mdtrt_cert_no varchar2(50); --就诊凭证编号, 就诊凭证类型为“01”时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号
LS_begntime varchar2(20); --开始时间, 获取历史参保信息时传入
LS_psn_cert_type varchar2(6); --人员证件类型, 字典取值
LS_certno varchar2(50); --证件号码
LS_psn_name varchar2(50); --人员姓名
LS_YBPZ_idType varchar2(6); --医保凭证_人员证件类型
LS_YBPZ_idNo varchar2(50); --医保凭证_证件号码
LS_YBPZ_userName varchar2(50); --医保凭证_人员姓名
LS_YBPZ_insuOrg varchar2(6); --医保凭证_行政区号
--修改医保发送明细表
cursor CUR_UPDATE_YBJKMX is
select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ
from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3')
order by JKMXID;
--查询主项数据
cursor CUR_QUERY_Main is
select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ
from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00 in ('AllIn')
order by JKMXID;
--查询明细数据
cursor CUR_QUERY_detail is
select YBJKID,JKMXID,JDBM00,ZJDBM0,JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ
from ZY_YBJKMX where YBJKID=PYBJKID and FSLXBZ in ('1','3') and CJBM00=PJKCJBM
order by JKMXID;
begin
PZXZT00:=0; --输出:执行状态 0:失败 1:成功
POUTXML:=null;--输出:出参(XML)
PERRMSG:=null;--输出:错误信息
LS_QQDATA:=null;--请求报文
LS_MainJson:=null;---主项Json
LS_detailJson:=null;---明细Json
LS_inputJson:=null;---input输入
LS_CZRQ00:=to_char(sysdate,'YYYYMMDD');
LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS');
LS_DateTimeStr:=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'); --日期时间型:格式为:yyyy-MM-dd HH:mm:ss
LS_DateStr:=to_char(sysdate,'YYYY-MM-DD'); --日期型:格式为:yyyy-MM-dd
LS_TimeStr:=to_char(sysdate,'HH24:MI:SS'); --时间型:格式为:HH:mm:ss
LS_BRXM00 := null;
LS_BRZJBH := null;
--:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口
LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',PINXML0),1,2);
if LS_INFNLX is null then
LS_INFNLX:= substrb(SF_XT_GETXMLSTR('INFNLX',POTHER0),1,2);
end if;
--:请求节点标识
LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',PINXML0),1,30);
if LS_QQJDBS is null then
LS_QQJDBS:= substrb(SF_XT_GETXMLSTR('QQJDBS',POTHER0),1,30);
end if;
--:返回节点标识
LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',PINXML0),1,30);
if LS_FHJDBS is null then
LS_FHJDBS:= substrb(SF_XT_GETXMLSTR('FHJDBS',POTHER0),1,30);
end if;
if PBRID00 > 0 then
begin
select A.YBKH00,A.YBID00,A.BRZJLX,A.BRZJBH,A.BRXM00,A.XZQH00,A.YBKSBM,AAC999
into LS_YBKH00,LS_YBID00,LS_BRZJLX,LS_BRZJBH,LS_BRXM00,LS_XZQH00,LS_YBKSBM,LS_AAC999
from BM_BRXXB0 A
where A.BRID00=PBRID00;
exception
when others then
PERRMSG := '未找到病人基本信息(BRID00='||PBRID00||')';
PZXZT00:=0; --执行状态 0:失败 1:成功
return;
end;
end if;
begin
select A.bke284,A.aaz500,A.aac002,A.aac003,A.aaz501,mdtrt_cert_type,mdtrt_cert_no,card_sn
into LS_bke284,LS_aaz500,LS_aac002,LS_aac003,LS_aaz501,
LS_mdtrt_cert_type,LS_mdtrt_cert_no,LS_card_sn
from ZY_YBJKRZ a where YBJKID=PYBJKID;
exception
when others then
LS_bke284:=null;--bke284:福建身份认证类型(01:读卡02:融合码06:医保码20:医疗证)
LS_aaz500:=null;--aaz500:社会保障卡号
LS_aac002:=null;--aac002:证件号码(社会保障号)
LS_aac003:=null;--aac003:姓名
LS_aaz501:=null;--aaz501:卡识别码
LS_mdtrt_cert_type:=null;
LS_mdtrt_cert_no:=null;
LS_card_sn:=null;--卡识别码, 就诊凭证类型为“03”时必填 卡识别码, 就诊凭证类型为“03”时必填
end;
--证件号码(社会保障号)
if LS_aac002 is null then
LS_AAC002 := substrb(SF_XT_GETXMLSTR('aac002',PINXML0),1,50);
if LS_AAC002 is null then
LS_AAC002 := substrb(SF_XT_GETXMLSTR('aac002',POTHER0),1,50);
end if;
if LS_AAC002 is null then
LS_AAC002 := substrb(SF_XT_GETXMLSTR('brzjbh',PINXML0),1,50);
end if;
end if;
--如果aac002跟院内不一致,把以院内未准
if trim(LS_BRZJBH) is not null and SP_SF_CHECKSFZH(trim(LS_BRZJBH))=1 and trim(LS_BRZJBH)<>trim(LS_AAC002) then
LS_AAC002:=substrb(trim(LS_BRZJBH),1,50);
end if;
--certno 证件号码
LS_certno := substrb(SF_XT_GETXMLSTR('certno',PINXML0),1,50);
if LS_certno is null then
LS_certno := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50);
end if;
if trim(LS_certno) is null and trim(LS_aac002) is not null then
LS_certno := substrb(LS_aac002,1,50);
end if;
--如果
if trim(LS_aac002) is not null and SP_SF_CHECKSFZH(trim(LS_aac002))=1 and trim(LS_certno)<>trim(LS_aac002) then
LS_certno:=substrb(LS_aac002,1,50); --证件号码
end if;
--病人姓名
if LS_aac003 is null then
LS_AAC003 := substrb(SF_XT_GETXMLSTR('aac003',PINXML0),1,50);
if LS_AAC003 is null then
LS_AAC003 := substrb(SF_XT_GETXMLSTR('aac003',POTHER0),1,50);
end if;
if LS_AAC003 is null then
LS_AAC003 := substrb(SF_XT_GETXMLSTR('brxm00',PINXML0),1,50);
end if;
end if;
--如果aac003跟院内不一致,把以院内未准
if trim(LS_BRXM00) is not null and trim(LS_BRXM00)<>trim(LS_AAC003) then
LS_AAC003:=substrb(trim(LS_BRXM00),1,50);
end if;
--psn_name 人员姓名
LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',PINXML0),1,50);
if LS_psn_name is null then
LS_psn_name := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50);
end if;
if trim(LS_psn_name) is null and trim(LS_AAC003) is not null then
LS_psn_name := substrb(LS_AAC003,1,50); --人员姓名
end if;
if trim(LS_AAC003) is not null and trim(LS_psn_name)<>trim(LS_AAC003) then
LS_psn_name := substrb(LS_AAC003,1,50); --人员姓名
end if;
--3.mdtrt_cert_no: 就诊凭证编号
if LS_mdtrt_cert_no is null then
LS_mdtrt_cert_no := substrb(SF_XT_GETXMLSTR('mdtrt_cert_no',PINXML0),1,50);
end if;
--开始时间
LS_begntime := substrb(SF_XT_GETXMLSTR('begntime',PINXML0),1,20);
if LS_begntime is null then
LS_begntime := to_char(sysdate,'YYYY-MM-DD HH24:MI:SS');
end if;
--psn_cert_type:人员证件类型
LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',PINXML0),1,20);
if LS_psn_cert_type is null then
LS_psn_cert_type := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,20);
end if;
if LS_psn_cert_type is null and LS_BRZJLX is not null then
LS_psn_cert_type := substrb(SF_XT_GETYBSXZD('psn_cert_type',LS_BRZJLX,'1','1'),1,6); --人员证件类型
end if;
--卡识别码
LS_card_sn:=substrb(nvl(LS_card_sn,LS_aaz501),1,50);
--bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证)
if LS_bke284='20'then
LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证
elsif LS_bke284='01'then --bke284:份认证类型(01:读卡02:融合码06:医保码20:医疗证)
LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证
elsif LS_bke284='06'then
LS_psn_cert_type:='01'; --人员证件类型 90:社会保障卡 01:身份证
end if;
if LS_mdtrt_cert_type='03' then --就诊凭证类型(01:时填写电子凭证令牌,为“02”时填写身份证号,为“03”时填写社会保障卡卡号)
LS_card_sn:=LS_card_sn;
else
LS_card_sn:=null;
end if;
--2023.04.20--医保电子凭证处理---begin--
/*
--医保凭证返回报文:
{"code":"0","data":{"aac002":"H10147178","aaz500":"DK1279450","actCardNo":"1","bab520":"350299","bkz543":"4243825228398849254401350000","businessType":"01101","certfCodg":"3502991177H0418","ecIndexNo":"232EA7A88D3961BCC0772488AE616349382B4E91F87CF8FE4BE5D0A2A32450EA","ecToken":"350000ecuevrn95hje0a83460a00009cd74835","id0000":"35000004000000000H1014717801","idNo":"H10147178","idType":"04","idcode":"4243825228398849254401350000","identity_token":"HtMKdwHko/m4M//QyLaUp8EBtJX3hsSS5f7frnBVpuZaIKJN+QtosxHz1utrkbjd/7ih0zzk45w0QA2tQPYArdfS8n1kys/Jmlkyqu9vcLsUrt7GCyW+CWi+NeUtW6TAa4BbUF9V6eb/APbUsU/w3Dip2kVK7zmHhTADsw1qYIuQBGqU/5aGyQxXxHA2pVhEUxQwGffysTrpF8jP4iOiPhenT0D+6JOe//oVS1F/atH19oNKPgZ/3Iw+QjY5DDbaj0SMFhMrMm41Ge5na8w+hI1HF3W/CT3x1kGKq25/KVEPNN2w4O0PRLTOis/N6DUuTdz7tQhFNpUKbFRmN0m+m6cWKBqw7g+A4bIRh3Y5UwNv1hrd08Ubfl4k5gZ7ktve5/W/Kf0mUVi8UBFGErBcZYXuu68Gd3lqH+ivakktUjs=","insuOrg":"350299","officeId":"5000","officeName":"治未病科","operatorId":"537","operatorName":"机房21","orgId":"3505990102","userName":"张佳鸿"},"extra":"","infno":null,"message":"success","orgId":"3505990102","transType":"ec.query"}
--请求参数2:
350000ecuevrn95hje0a83460a00009cd7483504H10147178张佳鸿DK1279450H10147178350299
*/
if LS_bke284='06' then --医保电子凭证
LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('idType',POTHER0),1,6); --医保凭证_人员证件类型 idType=psn_cert_type
if LS_YBPZ_idType is null then
LS_YBPZ_idType := substrb(SF_XT_GETXMLSTR('psn_cert_type',POTHER0),1,6);
end if;
LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('idNo',POTHER0),1,50); --医保凭证_证件号码 idNo=certno
if LS_YBPZ_idNo is null then
LS_YBPZ_idNo := substrb(SF_XT_GETXMLSTR('certno',POTHER0),1,50);
end if;
LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('userName',POTHER0),1,50); --医保凭证_人员姓名 userName=psn_name
if LS_YBPZ_userName is null then
LS_YBPZ_userName := substrb(SF_XT_GETXMLSTR('psn_name',POTHER0),1,50);
end if;
LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuOrg',POTHER0),1,60); --医保凭证_行政区号 insuOrg=insuplc_admdvs
if LS_YBPZ_insuOrg is null then
LS_YBPZ_insuOrg := substrb(SF_XT_GETXMLSTR('insuplc_admdvs',POTHER0),1,6);
end if;
if LS_YBPZ_idType is not null then
LS_psn_cert_type :=LS_YBPZ_idType; --人员证件类型
end if;
if LS_YBPZ_idNo is not null then
LS_certno :=LS_YBPZ_idNo; --证件号码
end if;
if LS_YBPZ_userName is not null then
LS_psn_name :=LS_YBPZ_userName; --人员姓名
end if;
end if;
--2023.04.20--医保电子凭证处理---begin--
--插入表ZY_YBJKMX
insert into ZY_YBJKMX(YBJKID,JKMXID,JDBM00,ZJDBM0,ZDBM00,ZDMC00,
JKSXBM,JKSXMC,JKFSZ0,JKFHZ0,FSLXBZ,ZDLX00,BZ0000,CJBM00)
select PYBJKID,A.ZDNBID,A.JDBM00,null,substrb(nvl(A.JKDZBM,A.JKSXBM),1,50),substrb(nvl(A.JKDZMC,JKSXMC),1,100),
A.JKSXBM,A.JKSXMC,null,null,substrb(a.JKFSLX,1,1),substrb(a.ZDTYPE,1,1),a.BZ0000,A.CJBM00
from BM_TYCJZD A
where A.CJBM00=PJKCJBM and nvl(A.SFYX00,'1')='1' and A.JKFSLX in ('1','2','3');
--修改:医保发送变量赋值
for C_YBFS in CUR_UPDATE_YBJKMX loop
LS_JKFSZ0:=null;--接口发送值
LS_JKFHZ0:=null;--接口返回值
LS_VALUE0:=null;--请求报文字符串
if C_YBFS.JKSXBM='mdtrt_cert_type' then --1.mdtrt_cert_type 就诊凭证类型
LS_JKFSZ0:=substrb(LS_mdtrt_cert_type,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='mdtrt_cert_no' then --2.mdtrt_cert_no 就诊凭证编号
LS_JKFSZ0:=substrb(LS_mdtrt_cert_no,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='card_sn' then --3.card_sn 卡识别码
LS_JKFSZ0:=substrb(LS_card_sn,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='begntime' then --4.begntime 开始时间
LS_JKFSZ0:=substrb(LS_begntime,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='psn_cert_type' then --5.psn_cert_type 人员证件类型
LS_JKFSZ0:=substrb(LS_psn_cert_type,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='certno' then --6.certno 证件号码
LS_JKFSZ0:=substrb(LS_certno,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
elsif C_YBFS.JKSXBM='psn_name' then --7.psn_name 人员姓名
LS_JKFSZ0:=substrb(LS_psn_name,1,250);
update ZY_YBJKMX set JKFSZ0=LS_JKFSZ0,JKFHZ0=LS_JKFHZ0,VALUE0=LS_VALUE0 where YBJKID=PYBJKID and JKSXBM=C_YBFS.JKSXBM and JKMXID=C_YBFS.JKMXID;
end if;
end loop;
--查询主项数据
for C_Main in CUR_QUERY_Main loop
LS_MainJson := SF_XT_GETJSONSTR(LS_MainJson,C_Main.JKSXBM,C_Main.JKFSZ0,'0');
end loop;
--查询明细数据
for C_detail in CUR_QUERY_detail loop
LS_detailJson := SF_XT_GETJSONSTR(LS_detailJson,C_detail.JKSXBM,C_detail.JKFSZ0,'0');
end loop;
if LS_MainJson is null then
PZXZT00:=0;
PERRMSG:='主项报文不能为空!';
return;
end if;
if LS_detailJson is null then
PZXZT00:=0;
PERRMSG:='明细报文不能为空!';
return;
end if;
--明细项加标题
LS_detailJson := SF_XT_GETJSONSTR(null,'data',LS_detailJson,'1');
--input输入
LS_inputJson := SF_XT_GETJSONSTR(LS_inputJson,'input',LS_detailJson,'1');
--拼接整个报文
--INFNLX:[国家医保]交易类型 1:直接调用医保DLL 3:调用服务接口
if LS_INFNLX='3' then
LS_QQDATA := SF_XT_GETJSONSTR(LS_QQDATA,'arg0',LS_MainJson||','||LS_inputJson,'1');
else
LS_QQDATA :=LS_MainJson||','||LS_inputJson;
end if;
LS_QQDATA:='{'||LS_QQDATA||'}';
--修改请求报文
update ZY_YBJKRZ set
QQDATA=LS_QQDATA ,--qqdata:请求报文
aaz500=substrb(nvl(LS_aaz500,aaz500),1,30) ,--aaz500:社会保障卡号
aac002=substrb(nvl(LS_certno,aac002),1,30) ,--aac002:证件号码(社会保障号)
aac003=substrb(nvl(LS_psn_name,aac003),1,50) ,--aac003:姓名
aaz501=substrb(nvl(LS_card_sn,aaz501),1,50) ,--aaz501:卡识别码
card_sn=substrb(nvl(LS_card_sn,card_sn),1,50) ,--card_sn:[国家医保]卡识别码=aaz501
psn_name=substrb(nvl(LS_psn_name,psn_name),1,50) ,--psn_name:[国家医保]人员姓名=aac003
psn_cert_type=substrb(nvl(LS_psn_cert_type,psn_cert_type),1,10) ,--psn_cert_type:[国家医保]人员证件类型=aac058
certno=substrb(nvl(LS_certno,certno),1,50) --certno:[国家医保]证件号码=aac002
where YBJKID=PYBJKID;
if PCOMMIT='Y' then
commit;
end if;
PZXZT00:=1; --输出:执行状态 0:失败 1:成功
PERRMSG:=null; --输出:错误信息
exception
when no_data_found then
PZXZT00:=0;
PERRMSG:=substrb('住院医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200);
rollback;
when others then
PZXZT00:=0;
PERRMSG:=substrb('住院医保接口交互生成失败(基本信息获取)!原因:'||sqlerrm,1,200);
rollback;
end;
/
show error;
--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%